Next: Directories, Previous: Auto Save, Up: Files [Contents][Index]
Symbolic links and hard links both make it possible for several file names to refer to the same file. Hard links are alternate names that refer directly to the file; all the names are equally valid, and no one of them is preferred. By contrast, a symbolic link is a kind of defined alias: when foo is a symbolic link to bar, you can use either name to refer to the file, but bar is the real name, while foo is just an alias. More complex cases occur when symbolic links point to directories.
Normally, if you visit a file which Emacs is already visiting
under a different name, Emacs displays a message in the echo area
and uses the existing buffer visiting that file. This can happen
on systems that support hard or symbolic links, or if you use a
long file name on a system that truncates long file names, or on
a case-insensitive file system. You can suppress the message by
setting the variable
find-file-suppress-same-file-warnings to a
non-nil value. You can disable this feature entirely
by setting the variable
find-file-existing-other-name to nil:
then if you visit the same file under two different names, you
get a separate buffer for each file name.
If the variable find-file-visit-truename is
non-nil, then the file name recorded for a buffer is
the file’s truename (made by replacing all
symbolic links with their target names), rather than the name you
specify. Setting find-file-visit-truename also
implies the effect of
find-file-existing-other-name.
Sometimes, a directory is ordinarily accessed through a
symbolic link, and you may want Emacs to preferentially show its
linked name. To do this, customize
directory-abbrev-alist. Each element in this list
should have the form (from .
to), which means to replace from
with to whenever from appears in a
directory name. The from string is a regular
expression (see Regexps). It
is matched against directory names anchored at the first
character, and should start with ‘\`’
(to support directory names with embedded newlines, which would
defeat ‘^’). The to string
should be an ordinary absolute directory name pointing to the
same directory. Do not use ‘~’ to stand
for a home directory in the to string; Emacs performs
these substitutions separately. Here’s an example, from a
system on which /home/fsf is normally accessed
through a symbolic link named /fsf:
(("\\`/home/fsf" . "/fsf"))
Next: Directories, Previous: Auto Save, Up: Files [Contents][Index]